package util;

import java.util.List;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;



/**
 * 
 * 工具类
 * 
 * @author shenjie
 * 
 * */
public class Util {
	/**
	 * 
	 * 
	 * 如果为空 ，将空值变成null
	 * 
	 * 
	 * */

	public static String EmptyToNull(String value) {
		String result = value;

		if (isEmpty(result))

			result = null;

		return result;
	}

	/**
	 * 
	 * 判断String是否为空
	 * 
	 * */

	public static boolean isEmpty(String value) {

		return (value == null || "".equals(value.trim()));

	}

	/**
	 * 
	 * 判断list是否为空
	 * 
	 * */

	public static <T> boolean isEmpty(List<T> list) {

		return (list == null || list.size() == 0);

	}

	/**
	 * 
	 * 电话号码验证
	 * 
	 * */

	public static boolean isPhone(String phone) {

		Pattern p1 = null;
		Pattern p2 = null;
		Matcher matcher = null;
		boolean b= false;
		p1 = Pattern.compile("^[0][1-9]{2,3}-[0-9]{5,10}$"); // 验证带区号的  
		p2 = Pattern.compile("^[1-9]{1}[0-9]{5,8}$"); // 验证没有区号的  
		if(phone.length()>9){
			matcher = p1.matcher(phone); 
			b = matcher.matches();
		}
		else{
			matcher = p2.matcher(phone);
			b = matcher.matches();
		}
		return b;
	}

	/**
	 * 
	 * 判断String 不为空
	 * 
	 * */
	public static boolean isNotEmpty(String value) {
		return (value != null && value.length() > 0);
	}

	/**
	 * 
	 * 判断list 不为空
	 * 
	 * */

	public static <T> boolean isNotEmpty(List<T> list) {
		return (list != null && list.size() > 0);

	}

	/**
	 * 
	 * 判断Object不为空
	 * 
	 * @param object
	 * @return
	 * 
	 * */
	public static boolean isNotEmpty(Object object) {

		return (object != null && object != "" && object != "[]");
	}

	/**
	 * 判断Set不为空
	 * 
	 * @param <T>
	 * @param object
	 * @return
	 */
	public static <T> boolean isNotEmpty(Set<T> set) {

		return (set != null && set.size() > 0);
	}

	/**
	 * 判断字符串类型数字还是其他的
	 * 
	 * @param str
	 * @return
	 */
	

	/**
	 * 过滤空字符串或者以及去掉二头多有空格
	 * 
	 * @param string
	 * @return
	 */

	// 得到randlength位随机码（字符）

	// 得到randlength位随机码（数字）

	/* Date类型转化到String类型 */

	/* String类型到Date类型转化 */

	// 比较指定时间是否大于现在时间
}
